import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

export default new Vuex.Store({
  // 仓库
  state: {  //data 
     num:10,
     name:"狗蛋"
  },
  // 对外使用
  getters:{  //computed
      num(state){
        return state.num;
      },
      name(state){
        return  state.name;
      }
  },
  // 用来同步修改state中的值，唯一的方式
  mutations:{
    changeNum(state,newnum){
       state.num = newnum
    },
    changName(state,newname){
      state.name  =newname
    }
  },
  // 异步网络请求
  // 异步请求，也是调用同步方法实现state更新的
  actions:{
      changeNameaAsync(context,newname){
        setTimeout(() => {
            context.commit("changName",newname)
        }, 2000);
      }
  },
  // modules:{}
})
